@charset "UTF-8";

:root {
  --cvs-bg-color: #D4D4D4;
  --zIndex-canvas: 1;
  --zIndex-interactiveCanvas: 2;
  --zIndex-svgLayer: 3;
  --zIndex-wysiwyg: 3;
  --zIndex-canvasButtons: 3;
  --zIndex-layerUI: 4;
  --zIndex-eyeDropperBackdrop: 5;
  --zIndex-eyeDropperPreview: 6;
  --zIndex-hyperlinkContainer: 7;
  --zIndex-modal: 1000;
  --zIndex-popup: 1001;
  --zIndex-toast: 999999;
  --sab: env(safe-area-inset-bottom);
  --sal: env(safe-area-inset-left);
  --sar: env(safe-area-inset-right);
  --sat: env(safe-area-inset-top);
}

::-webkit-scrollbar {
  width: 0;
  height: 0;
  overflow: auto;
  background: transparent;
}

.hide {
  display: none;
}

.excalidraw {
  --theme-filter: none;
  --button-destructive-bg-color: #ffe3e3;
  --button-destructive-color: #c92a2a;
  --button-gray-1: #e9ecef;
  --button-gray-2: #ced4da;
  --button-gray-3: #adb5bd;
  --button-special-active-bg-color: #ebfbee;
  --dialog-border-color: var(--color-gray-20);
  --dropdown-icon: url(data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="292.4" height="292.4" viewBox="0 0 292 292"><path d="M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z"/></svg>);
  --focus-highlight-color: #a5d8ff;
  --icon-fill-color: var(--color-on-surface);
  --icon-green-fill-color: #2b8a3e;
  --default-bg-color: #ffffff;
  --input-bg-color: #ffffff;
  --input-border-color: #ced4da;
  --input-hover-bg-color: #f1f3f5;
  --input-label-color: #495057;
  --island-bg-color: #ffffff;
  --keybinding-color: var(--color-gray-40);
  --link-color: #1c7ed6;
  --overlay-bg-color: rgba(255, 255, 255, .88);
  --popup-bg-color: var(--island-bg-color);
  --popup-secondary-bg-color: #f1f3f5;
  --popup-text-color: #000000;
  --popup-text-inverted-color: #ffffff;
  --select-highlight-color: #339af0;
  --shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);
  --button-hover-bg: var(--color-surface-high);
  --button-active-bg: var(--color-surface-high);
  --button-active-border: var(--color-brand-active);
  --default-border-color: var(--color-surface-high);
  --default-button-size: 2rem;
  --default-icon-size: 1rem;
  --lg-button-size: 2.25rem;
  --lg-icon-size: 1rem;
  --editor-container-padding: 1rem;
  --scrollbar-thumb: var(--button-gray-2);
  --scrollbar-thumb-hover: var(--button-gray-3);
  --modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);
  --avatar-border-color: var(--color-gray-20);
  --sidebar-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);
  --sidebar-border-color: var(--color-surface-high);
  --sidebar-bg-color: var(--island-bg-color);
  --library-dropdown-shadow: 0px 15px 6px rgba(0, 0, 0, .01), 0px 8px 5px rgba(0, 0, 0, .05), 0px 4px 4px rgba(0, 0, 0, .09), 0px 1px 2px rgba(0, 0, 0, .1), 0px 0px 0px rgba(0, 0, 0, .1);
  --space-factor: .25rem;
  --text-primary-color: var(--color-on-surface);
  --color-selection: #6965db;
  --color-icon-white: #ffffff;
  --color-primary: #6965db;
  --color-primary-darker: #5b57d1;
  --color-primary-darkest: #4a47b1;
  --color-primary-light: #e3e2fe;
  --color-primary-light-darker: #d7d5ff;
  --color-primary-hover: #5753d0;
  --color-gray-10: #f5f5f5;
  --color-gray-20: #ebebeb;
  --color-gray-30: #d6d6d6;
  --color-gray-40: #b8b8b8;
  --color-gray-50: #999999;
  --color-gray-60: #7a7a7a;
  --color-gray-70: #5c5c5c;
  --color-gray-80: #3d3d3d;
  --color-gray-85: #242424;
  --color-gray-90: #1e1e1e;
  --color-gray-100: #121212;
  --color-disabled: var(--color-gray-40);
  --color-warning: #fceeca;
  --color-warning-dark: #f5c354;
  --color-warning-darker: #f3ab2c;
  --color-warning-darkest: #ec8b14;
  --color-text-warning: var(--text-primary-color);
  --color-danger: #db6965;
  --color-danger-dark: #db6965;
  --color-danger-darker: #d65550;
  --color-danger-darkest: #d1413c;
  --color-danger-text: black;
  --color-danger-background: #fff0f0;
  --color-danger-icon-background: #ffdad6;
  --color-danger-color: #700000;
  --color-danger-icon-color: #700000;
  --color-warning-background: var(--color-warning);
  --color-warning-icon-background: var(--color-warning-dark);
  --color-warning-color: var(--text-primary-color);
  --color-warning-icon-color: var(--text-primary-color);
  --color-muted: var(--color-gray-30);
  --color-muted-darker: var(--color-gray-60);
  --color-muted-darkest: var(--color-gray-100);
  --color-muted-background: var(--color-gray-80);
  --color-muted-background-darker: var(--color-gray-100);
  --color-promo: var(--color-primary);
  --color-success: #268029;
  --color-success-lighter: #cafccc;
  --color-logo-icon: var(--color-primary);
  --color-logo-text: #190064;
  --border-radius-md: .375rem;
  --border-radius-lg: .5rem;
  --color-surface-high: hsl(244, 100%, 97%);
  --color-surface-mid: hsl(240 25% 96%);
  --color-surface-low: hsl(240 25% 94%);
  --color-surface-lowest: #ffffff;
  --color-on-surface: #1b1b1f;
  --color-brand-hover: #5753d0;
  --color-on-primary-container: #030064;
  --color-brand-active: #4440bf;
  --color-border-outline: #767680;
  --color-border-outline-variant: #c5c5d0;
  --color-surface-primary-container: #e0dfff;

  --color-primary-contrast-offset: #625ee0;
}

* {
  margin: 0;
  padding: 0;
  list-style: none;
  outline: none;
  box-sizing: content-box;
}

.app {}

canvas {
  background-color: var(--cvs-bg-color);
}

textarea[id='textbox'] {
  position: absolute;
  width: 120px;
  min-height: 1em;
  display: inline-block;
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  resize: none;
  background: transparent;
  overflow: hidden;
  z-index: 9999;
  word-break: normal;
  white-space: pre;
  overflow-wrap: break-word;
  box-sizing: content-box;
  text-align: center;
  vertical-align: top;
  opacity: 1;
  filter: var(--theme-filter);
  max-height: 125px;
  background-color: var(--cvs-bg-color);
}

.excalidraw .layer-wrapper {
  left: var(--editor-container-padding);
  top: var(--editor-container-padding);
  right: var(--editor-container-padding);
  bottom: var(--editor-container-padding);
}

.excalidraw .layer-fixed {
  position: absolute;
  inset: 0;
  padding: 1rem;
  z-index: 5;
  pointer-events: none;
}

.excalidraw .Island {
  --padding: 0;
  box-sizing: border-box;
  background-color: var(--island-bg-color);
  box-shadow: var(--shadow-island);
  border-radius: var(--border-radius-lg);
  padding: calc(var(--padding)* var(--space-factor));
  position: relative;
  transition: box-shadow .5s ease-in-out;
}

.excalidraw .Stack {
  --gap: 0;
  display: grid;
  gap: calc(var(--space-factor)* var(--gap));
}

.excalidraw .Stack_horizontal {
  grid-template-rows: auto;
  grid-auto-flow: column;
  grid-auto-columns: min-content;
}


/* ---------------------------------------------- */
/* ---------  App toolbar ----------------------- */
/* ---------------------------------------------- */
.App-toolbar {
  width: fit-content;
  margin: auto;
}

.App-toolbar .ToolIcon {
  border-radius: var(--border-radius-lg);
  display: inline-flex;
  align-items: center;
  position: relative;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  pointer-events: all;
}

.App-toolbar label.ToolIcon input[type="radio"]:checked+.ToolIcon__icon {
  background-color: var(--button-destructive-bg-color);
}

.App-toolbar .ToolIcon .ToolIcon__icon:hover {
  background: var(--button-hover-bg);
}

.App-toolbar .ToolIcon_type_radio,
.App-toolbar .ToolIcon_type_checkbox {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.App-toolbar .ToolIcon__icon {
  box-sizing: border-box;
  width: var(--default-button-size);
  height: var(--default-button-size);
  color: var(--icon-fill-color);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: var(--border-radius-md);
}

.App-toolbar .ToolIcon__icon svg {
  position: relative;
  width: var(--default-icon-size);
  height: var(--default-icon-size);
  color: var(--icon-fill-color);
}

.App-toolbar .App-toolbar-container .ToolIcon__icon {
  width: var(--lg-button-size);
  height: var(--lg-button-size);
}

.App-toolbar .ToolIcon .ToolIcon__keybinding {
  bottom: 4px;
  right: 4px;
}

.App-toolbar .ToolIcon__keybinding {
  position: absolute;
  bottom: 2px;
  right: 3px;
  font-size: .625rem;
  color: var(--keybinding-color);
  font-family: var(--ui-font);
  -webkit-user-select: none;
  user-select: none;
}

.App-toolbar .App-toolbar__divider {
  width: 1px;
  height: 1.5rem;
  align-self: center;
  background-color: var(--default-border-color);
  margin: 0 .25rem;
}

.App-toolbar button {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

.App-toolbar .dropdown-menu-button {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .625rem;
  width: var(--button-width, var(--default-button-size));
  height: var(--button-height, var(--default-button-size));
  box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: var(--button-border, var(--default-border-color));
  border-radius: var(--border-radius-lg);
  cursor: pointer;
  background-color: var(--button-bg, var(--island-bg-color));
  color: var(--button-color, var(--color-on-surface));
  font-family: var(--ui-font);
  width: var(--lg-button-size);
  height: var(--lg-button-size);
  --background: var(--color-surface-mid);
  background-color: var(--background);
}

.App-toolbar .App-toolbar__extra-tools-trigger {
  box-shadow: none;
  border: 0;
  background-color: transparent;
}

.App-toolbar .zen-mode-transition {
  transition: transform .5s ease-in-out;
}

.App-toolbar .ai-help {
  display: inline-flex;
  margin-left: auto;
  padding: 2px 4px;
  border-radius: 6px;
  font-size: 8px;
  font-family: Cascadia, monospace;
  position: absolute;
  background: var(--color-promo);
  color: var(--color-surface-lowest);
  bottom: 3px;
  right: 4px;
}

.visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  -webkit-user-select: none;
  user-select: none;
}

/* ------------------------------- */
/** panelColumn */

.tools {
  width: fit-content;
}

.panelColumn .buttonList {
  flex-wrap: wrap;
  display: flex;
  column-gap: .5rem;
  row-gap: .5rem;
}

.tools .panelColumn {
  display: flex;
  flex-direction: column;
  row-gap: .75rem;
}

.panelColumn fieldset {
  margin: 0;
  padding: 0;
  border: none;
}

.panelColumn fieldset legend {
  padding: 0;
}

.buttonList label {
  font-size: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .625rem;
  width: var(--button-width, var(--default-button-size));
  height: var(--button-height, var(--default-button-size));
  box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: var(--button-border, var(--default-border-color));
  border-radius: var(--border-radius-lg);
  cursor: pointer;
  background-color: var(--button-bg, var(--island-bg-color));
  color: var(--button-color, var(--color-on-surface));
  font-family: var(--ui-font);
  padding: 0;
  pointer-events: all;
}

.buttonList input[type=radio] {
  opacity: 0;
  position: absolute;
  pointer-events: none;
  width: 32px;
  height: 32px;
}

.buttonList label.active svg {
  color: var(--button-color);
}

/* .excalidraw .buttonList label.active,
.excalidraw .buttonList button.active,
.excalidraw .buttonList .zIndexButton.active {
  background-color: var(--button-selected-bg, var(--color-surface-primary-container));
  border-color: var(--button-selected-border, var(--color-surface-primary-container));
} */

.excalidraw .buttonList label,
.excalidraw .buttonList button,
.excalidraw .buttonList .zIndexButton {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .625rem;
  width: var(--button-width, var(--default-button-size));
  height: var(--button-height, var(--default-button-size));
  box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: var(--button-border, var(--default-border-color));
  border-radius: var(--border-radius-lg);
  cursor: pointer;
  background-color: var(--button-bg, var(--island-bg-color));
  color: var(--button-color, var(--color-on-surface));
  font-family: var(--ui-font);
  padding: 0;
}

.excalidraw .color-picker-container {
  display: grid;
  grid-template-columns: 1fr 20px 1.625rem;
  padding: .25rem 0px;
  align-items: center;
}

.excalidraw .color-picker__top-picks {
  display: flex;
  justify-content: space-between;
  column-gap: .25rem;
}

.excalidraw .color-picker__button {
  --radius: .25rem;
  padding: 0;
  margin: 0;
  width: 1.35rem;
  height: 1.35rem;
  border: 1px solid var(--color-gray-30);
  border-radius: var(--radius);
  filter: var(--theme-filter);
  background-color: var(--swatch-color);
  background-position: left center;
  position: relative;
  font-family: inherit;
  box-sizing: border-box;
}

.excalidraw .color-picker__button.active .color-picker__button-outline {
  position: absolute;
  inset: -2px;
  box-shadow: 0 0 0 1px var(--color-primary-darkest);
  z-index: 1;
  border-radius: calc(var(--radius) + 1px);
  filter: var(--theme-filter);
}

.excalidraw .panelColumn h3,
.excalidraw .panelColumn legend,
.excalidraw .panelColumn .control-label {
  margin: 0;
  margin-bottom: .25rem;
  font-size: .625rem;
  color: var(--text-primary-color);
  font-weight: 400;
  display: block;
}

.panelColumn .buttonList label svg,
.panelColumn .buttonList button svg,
.panelColumn .buttonList .zIndexButton svg {
  width: var(--default-icon-size);
  height: var(--default-icon-size);
  pointer-events: var(--theme-pointer, none);
}

.panelColumn h3,
.panelColumn legend,
.panelColumn .control-label {
  margin: 0;
  margin-bottom: .25rem;
  font-size: .75rem;
  color: var(--text-primary-color);
  font-weight: 400;
  display: block;
}

.panelColumn .control-label input {
  display: block;
  width: 100%;
}

.panelColumn button {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

.panelColumn .buttonListIcon button.active,
.panelColumn .buttonList label:has(input[type="radio"]:checked) {
  background-color: var(--color-surface-primary-container);
}

.panelColumn .color-picker-container .is-transparent {
  background: url('');
}

.panelColumn .color-picker-container .color-picker__button,
.panelColumn .buttonListIcon button,
.panelColumn .buttonList label,
.panelColumn .control-label input,
.panelColumn .buttonList .zIndexButton {
  cursor: pointer;
  pointer-events: all;
}


/* ------ font size picker ------ */
.textbox-fieldset {
  --default-icon-size: 0.625rem;
}

.textbox-fieldset.hidden {
  display: none;
}

/** --------- arrow ------------------ */
.panelColumn .popover {
  position: absolute;
  z-index: 10;
  padding: 5px 0;
  outline: none;
}

.panelColumn .picker {
  background: var(--popup-bg-color);
  border: 0 solid rgba(255, 255, 255, .25);
  box-shadow: #00000040 2px 2px 4px 2px;
  border-radius: 4px;
  position: absolute;
}

.panelColumn .picker-content {
  padding: .5rem;
  display: grid;
  grid-template-columns: repeat(2, auto);
  grid-gap: .5rem;
  border-radius: 4px;
}

.panelColumn .buttonList button {
  cursor: pointer;
  pointer-events: all;
}
